+ [MDM-MIGRATION-119] Создать таблицу хранения fridge_db.food_elements

Развертывание физической структуры справочника канонических продуктов и их БЖУ ИИ-паспортов

Author

Services Task & Simulation Framework Documentation

Published

July 13, 2026

NoteКраткая карточка задачи
  • Репозиторий / Компонент: product-ollama-worker / fridge-service (База fridge_db, контур INVENTORY).
  • Целевая СУБД: PostgreSQL v15+.
  • Ссылка на Метод: Конфигурация кэша безопасности IAD
  • Статус: Готово к реализации

  • Инструкция по шагам: Выполнить DDL-миграцию для создания справочной таблицы канонических элементов питания (food_elements). Согласно манифесту и топологии физического слоя, для обеспечения транзакционной целостности без распределенного коммита, данная таблица изолирована внутри базы fridge_db. Обогащенный ИИ-паспорт (БЖУ, микроэлементы, синонимы номенклатуры) сохраняется в бинарное поле типа JSONB.
-- Скрипт миграции для fridge_db (Контур INVENTORY)
CREATE TABLE IF NOT EXISTS fridge_db.food_elements (
    id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    name VARCHAR(255) UNIQUE NOT NULL,           -- Каноническое наименование (например, 'Яйцо куриное С1')
    status VARCHAR(32) NOT NULL DEFAULT 'PENDING', -- Статусная модель: 'PENDING', 'READY', 'FAILED'
    chemical_card JSONB,                         -- Структурированный JSON-паспорт БЖУ от LLM Gateway
    trace_id VARCHAR(128) NOT NULL,              -- Сквозной X-Request-ID для аудита ИИ-генерации
    created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
    updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);

-- Частичный индекс для оптимизации вычитки и процессинга задач ИИ-воркерами
CREATE INDEX IF NOT EXISTS idx_food_elements_ai_processing 
ON fridge_db.food_elements (status, created_at ASC) 
WHERE status = 'PENDING';